package remoto;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;

import dominio.Proveedor;
import dto.ProveedorTO;

public class GestionProveedores {
	private static GestionProveedores instance;

	public static GestionProveedores getInstance() throws MalformedURLException, RemoteException, NotBoundException {
		if (instance == null)
			instance = new GestionProveedores();
		return instance;
	}

	private IGestionProveedores remoto;

	private GestionProveedores() throws MalformedURLException, RemoteException, NotBoundException {
		remoto = (IGestionProveedores) Naming.lookup("GestionProveedores");
	}

	public int guardarProveedor(Proveedor proveedor) throws RemoteException {
		return remoto.guardarProveedor(proveedor.getDTO());
	}

	public Proveedor buscarProveedor(String cuil) throws RemoteException {
		ProveedorTO dto = remoto.buscarProveedor(cuil);
		if (dto != null)
			return Proveedor.fromDTO(dto);
		return null;
	}

	public List<Proveedor> listarProveedores() throws RemoteException {
		List<Proveedor> lista = new ArrayList<Proveedor>();
		List<ProveedorTO> dtos = remoto.listarProveedores();
		for (ProveedorTO dto : dtos)
			lista.add(Proveedor.fromDTO(dto));
		return lista;
	}
}